約 4,573,577 件
https://w.atwiki.jp/mynote/pages/10.html
Fortran Fortran FFTプログラム以下簡単な使い方 Gnu fortran77 コンパイルオプション Fortranのデータ型 「'」「"」シングルクォーテーションとダブルクォーテーション Fortran90の2連コロンとは・・・? Option説明 Tips format文 エラーメモこれはmain.fにendを入れていなかったとき出たエラー・・・最低ですね ファイル名をcip.fじゃなくてcpi.fにしてmakeしてたときに出たエラー・・・ (^)病人の本質的な'COS'の参照--1つ以上の議論には、不正確なタイプがあります。 型の宣言がおかしい、i,jはinteger(整数型)・・・当然cos()の中はflot commonファイルにistepというのがあってIntegerだよ! f(i,j)とかのi,jが設定値を超えると出るエラーらしい Permissionつまり実行権限の問題!(chmod -777 で変えてやればいいときもあるが、なぜそのパーミッションになってしまっているかが問題) COMMON分メモ http //www.jp.freebsd.org/cgi/mroff.cgi?sect=1 cmd= lc=1 subdir=man dir=jpman-6.0.0%2Fman subdir=man man=f77 FFTプログラム k-spaceを見るときフーリエ変換を用いるが、普通にフーリエ変換をしていくと何日かかるかわからない。そこで使用するのがFFT(Fast Fourier Transform=高速フーリエ変換)である! 数値計算結果の解析を行う上で数多あるFFTの内1つぐらいはFFTライブラリを使用できるべきであろうと思う。 http //www.kurims.kyoto-u.ac.jp/~ooura/fftman/ 以下簡単な使い方 http //www20.atwiki.jp/mynote/pages/81.html Gnu fortran77 コンパイルオプション $g77 -O3 -ml -o acip.out -g -Wall acip.f O3 最適化オプション 「Option Level 3」の意味 ml Mathe libraryの使用(C言語やSin等の関数を仕様するとき必要かも) Wall -Wunused と -Wuninitialized オプションの結合(Wから始まるオプションを全てと言う意味) Fortranのデータ型 Integer型10桁 整数(4Byte)だから2^(4*8)で+ーある訳だから/2が最大値format文はI10で 2147483647(0を含む)~-2147483648 「 」「"」シングルクォーテーションとダブルクォーテーション print文などで文字列を扱う場合には、文字列をシングルクォーテーション( ) またはダブルクォーテーション( " )でくくります。シングルクォーテーションでくくるかダブルクォーテーションでくくるかでは多少意味が異なります。シングルクォーテーション( )でくくった場合は、そのままの文字として扱われます。 例) print そのまま\n出力します ;- [表示]そのまま\n出力します ダブルクォーテーション( " )でくくった場合は、メタ文字(\+アルファベットで制御コードなどを表す文字)や 変数等を挿入して扱う事ができるようになります。 例) print "メタ文字を\n出力します";- [表示]メタ文字を(ここに改行コードが入る)出力します 状況に応じて使い分けるしかないのですが、全角の表示でShiftJISを使用する場合に、 「ソ」や「表」といった文字は2バイト目が \ と同じコードとなり、文字が化ける場合が あるため、全角の表示はシングルクォーテーション( )でくくる方が無難です。 Fortran90の2連コロンとは・・・? 2連コロンを使った宣言方法あります。「integer c」と書きます。これまでに紹介した方法と、どこが違うのでしょうか。一つは、宣言に加えて初期値の設定ができるという点です。今までは初期値の設定は、宣言文で宣言した後、算術代入文やDATA文で値を入力する方法しかありませんでした。しかしこの宣言方法の場合、「integer a=4」というように、宣言の段階で値の入力ができるのです。これにより、書く量が少なくなり、aの扱われ方が非常に分かりやすくなります。C言語では宣言+入力は当たり前のことなのですが、Fortran77の段階ではこれは不可能でした。もう一つの利点は、宣言を複数重ねることができるのです。例えば、後の章で学ぶ「配列」の宣言文である「DIMENSION文」がありまして、今までは「integer g」の後に、「dimension g(20)」と書いていました。2連コロンの宣言方法を使うと、これと型宣言文を一つにまとめて、「integer,dimension(20) g」(宣言文同士の間にカンマが入ります)とすることができます。慣れるとこの宣言方法ばかり使用します。では、練習してみましょう。 Option説明 -O3 最適化を行います。最適化コンパイルは幾分長めの処理時間と、大きな関数に対する非常に多くのメモリを必要とします。これ以上の最適化オプションについては GCC ドキュメントを参照して下さい。特にループ展開は典型的な数値計算の Fortran プログラムにとっては調べる価値があるかも知れません。 -o file 出力先を file に指定します。 -g オペレーティングシステムのネイティブのフォーマット (DBX, SDB,DWARF) でデバッグ情報を生成します。GDB はこのデバッグ情報に基づいて動作することができます。 DBX フォーマットを使用するほとんどのシステムにおいては、`-g を指定すると、GDB だけが使用できる余分なデバッグ情報が使用可能になります。他の多くの Fortran コンパイラと異なり、GNU Fortran は `-g を `-O とともに使用することを許しています。最適化されたコードが通る近道は、時には驚くべき結果を生み出すかもしれません。定義したはずの変数が存在しなかったり、制御の流れが予想もしなかった場所に移動したり、結果が定数とわかる計算や、結果がすでに手元にある文は実行されなくなり、ある文がループの外に追い出されて別の場所で実行されたりします。それにも関わらず、このオプションは最適化された出力のデバッグを可能としています。これによって、バグを含むかもしれないプログラムに対してオプティマイザを使用することができるようになります。 -Wall たとえマクロとの組み合わせであっても、避けたほうがいいと我々が推奨する用法や、簡単に避けることができると我々が信じている用法に関する場合に警告します http //www-lab.imr.tohoku.ac.jp/~t-nissie/computer/c-tips/#section4 Fortran は write 文を 1 回実行する度に改行を行う。 (1) do i=1,n write(6,*) a(i) end do (2) write(6,*) (a(i),i=1,n) では異なる結果となります。(1) では一つの要素毎に改行するのに対して、(2) では全ての要素を空白で繋げて出力したのち改行します。 Tips http //docs.sun.com/source/806-4841/representations.html その四「Fortran WRITE文で改行させない方法」 FortranであるWRITE文で改行せず, その次のWRITE文で同じ行に書き続けたいときには書式 (FORMAT) の最後に$を付ける. こんなかんじ program suppress_new_line implicit none write(6, (a,$) ) abc write(6, (a) ) def write(6, (a) ) ghi end program suppress_new_line その五「Fortran 文字列をつなげる方法」 Fortranで二つの文字列をつなげるには//を使う. こんなかんじ implicit none character*1 a,b,c,d character*1 e character*2 f a = X b = Y c = U d = V write(6, (a) ) a // b e = (c // d) f = (c // d) write(6, (a) ) e write(6, (a) ) f end format文 format 文を使うと文番号を使う必要があります。以下のようにすると format 文を使わずに済ませることが出来ます。 write(6, (a,f8.5,a,i3.3) ) a = ,a, i = ,i format 文を使わないことにより、プログラムの cut paste のときに文番号の衝突を気にしなくて済みます。なお、上の例の i3.3 は 3 桁で出力し、それに満たない場合は 0 を補うと言う意味です。 エラーメモ 1 main.f In program `MAIN__ main.f 9 call init ^ End of source file before end of block started at (^) make *** [main.o] Error 1 utmcc000 ~/programs/zalesak02/zal_source SaitouDaisuke$ これはmain.fにendを入れていなかったとき出たエラー・・・最低ですね 2 make *** No rule to make target `cip.f , needed by `cip.o . Stop. ファイル名をcip.fじゃなくてcpi.fにしてmakeしてたときに出たエラー・・・ 3 Reference to intrinsic `EXP at (^) invalid -- one or more arguments have incorrect type init.f 26 f(i,j) = (1/sqrt(2.0*3.141))*EXP(-(j**2)/2)*(1+0.01*cos(i/2)) ^ Reference to intrinsic `COS at (^) invalid -- one or more arguments have incorrect type (^)病人の本質的な COS の参照--1つ以上の議論には、不正確なタイプがあります。 型の宣言がおかしい、i,jはinteger(整数型)・・・当然cos()の中はflot 4 g77 -c -O init.f init.f In subroutine `init parameter.h 1 warning common f(0 im,0 jm),fs(0 im,0 jm), fss(0 im,0 jm), ^ Padding of 4 bytes required before `dt in common block `_BLNK__ at (^) -- consider reordering members, largest-type-size first common /a/ f(0 im,0 jm),fs(0 im,0 jm), fss(0 im,0 jm), gx(0 im,0 jm), gsx(0 im,0 jm), gssx(0 im,0 jm), gv(0 im,0 jm), gsv(0 im,0 jm), gssv(0 im,0 jm), fn(0 im,0 jm), gnx(0 im,0 jm), gnv(0 im,0 jm), es(0 im), v(0 jm), x(0 im), istep, dt, dx, dy, sum commonファイルにistepというのがあってIntegerだよ! 5 h153 ~/programs/CV2_2DCIP/fortran se$ make make Circular main.f - main.f dependency dropped. make Circular input.f - input.f dependency dropped. make Circular output.f - output.f dependency dropped. make Circular acip2d.f - acip2d.f dependency dropped. make Circular poisson.f - poisson.f dependency dropped. g77 main.f input.f output.f acip2d.f poisson.f -o cv2 ./cv2 make *** [run_main] Segmentation fault f(i,j)とかのi,jが設定値を超えると出るエラーらしい 6 h153 ~/programs/CV2_2DCIP/fortran se$ make make Circular main.f - main.f dependency dropped. make Circular input.f - input.f dependency dropped. make Circular output.f - output.f dependency dropped. make Circular acip2d.f - acip2d.f dependency dropped. make Circular poisson.f - poisson.f dependency dropped. g77 main.f input.f output.f acip2d.f poisson.f -o cv2 ./cv2 make Permission to access file denied Permissionつまり実行権限の問題!(chmod -777 で変えてやればいいときもあるが、なぜそのパーミッションになってしまっているかが問題) ____ COMMON分メモ 便利なツールとして、次は「COMMON」文を紹介しましょう。ただ、余り使用は進められません。理由は、次章でお話しますが、COMMON文にはいろいろと問題が多いのです。これと同じ機能を持ち、かつ安全なモジュール(次章)がFortran90には用意されているので、あくまでFortran90 の人は、モジュールを使用するようにしてください。ここでのCOMMON文の紹介は、Fortran77人向けや一応の紹介だと受け止めてください。 COMMON文というのは、宣言した変数を、大域要素と使用、というものです。大域要素というのは、局所要素の反対で、どのプログラム単位においても有効な要素のことです。これまでは、主プログラムで宣言した変数と同じ名前の変数を副プログラムで使用していたとしても、それらは見かけ上同じでもまったく別の変数でしたね。主プログラムで「x」を使い、副プログラムでも「x」を使ったとしても、それらはx1とx2のように別の変数でした。このCOMMON 文を使用すると、それらが同じ「x」になるのです。同じ変数なので、型宣言をする必要がなくなります。変数全てに対して型宣言を再びしなくてもよくなるというのは、仮引数が多ければ多いほどありがたみを感じます。 使用方法は、まず主プログラムでCOMMON文を使用して、大域要素として変巣を定義します。「common /変数群の名前(領域名)/変数群」と書きます。領域名というのは、COMMON文を使用すると、「この領域にある変数が大域要素ですよ」ということを示す共通領域(ブロック)が作られます。その名前を、領域名のところに書きます。領域名は必須ではなく、書かなくても構いません。変数群を2種類以上に分け、それぞれに違った領域名をつける場合は、「common /p/a,b/q/c,d」のように、一つの領域名、変数群を書き、スラッシュを間に挟んで2つ目の領域名、、変数群を書いていきます。 br 2; COMMON文を使用すると、主プログラム・副プログラムの実・仮引数が不要となります。また、先ほども申し上げたとおり、型宣言をしなくてすむようになります(配列宣言は必要ですが)。副プログラムにおいて、使用する変数を、「common /領域名/使用する変数」のように定義します。これで、何が引数になるのかを示すわけですね。COMMON文を使用した例が、下の例文です。 program main common /p/a(5),xmax,xmin integer a,xmax,xmin print *, 最大値と最小値を求める。5個値を入力 read *,a(1 5) call sub print *, 最大値 ,xmax, 最小値 ,xmin end program subroutine sub common /p/a(5),xmax,xmin xmax=maxval(a,1) xmin=minval(a,1) end subroutine sub この例では、「a(5),xmax,xmin」を変数群、「p」を領域名とする共通ブロックを作成しました。領域名は省略可能です。これにより、 SUBROUTINEを使用する際の引数と、副プログラム内での型宣言が省略されています。ちなみに、COMMON文において配列宣言がなされているので、主プログラムでの型宣言時に「integer a(5)」という配列宣言は不要です。 しかし、COMMON文は使いづらい面があります。それは、副プログラム内で使用する際には、COMMON文を書くときに、変数の並び順を買えずにそのまま書かなければならない、ということです。この場合ですと、「common /p/a(5),xmax,xmin」というのを、「common /p/xmax,a(5),xmin」としてはいけない、ということです。COMMON文で変数を共通利用する際のその方法というのは、変数の名前ではなく、変数の並び順なのです。副プログラムに書かれたCOMMON文の変数の並び順に、主プログラムでのCOMMON文の並び順が適用されてしまうのです。ですから、副プログラムで「common /p/xmax,a(5),xmin」と書いてしまうと、「xmax」は主プログラムの「a(5)」に、「a(5)」は主プログラムの「xmax」になってしまうのです。名前でなく順番で変数を対応させているので、「common /p/y(5),c,i」でも可能です。この、並び順を正確に書かなければならないというのが、COMMON文の使いづらさです。 次は、「INTENT」と「OPTIONAL」です。共に仮引数に対して使います。INTENTから説明しましょう。INTENT文は、仮引数が主プログラムからの値や副プログラムで求めた値に対し、どう対応するのか、ということを決める文です。仮引数は、値に対する対応で3種類に分かれます。1つ目は、副プログラムでの計算をするために、主プログラムから必要な値を実引数から受け取ると言う、入力のみの引数です。2つ目は結果変数のことで、副プログラムで求めた値を、実引数に渡す、出力のみの引数です。3つ目は、今までは1回ぐらいしか出てこなかったと思いますが、入力も出力もこなす引数です(例えば、「a=a+2」のみが副プログラムでの計算であれば、、「a」は右辺で入力をし、左辺で計算結果を受け取って主プログラムに出力しています)。副プログラムで使用する仮引数が、この3つうちのどれなのかをコンピュータに対して明示的にするのが、INTENT文です。 使い方はいたって簡単です。副プログラムでの変数の型宣言のときに、「intent(属性)」を書けばいいだけです。先ほどの3つのうち、1つ目は属性が「in」、2つ目は「out」、3つ目は「inout」となります。例えば、整数型で入力のみの仮引数nの宣言文は、「integer,intent (in) n」と書きます。 この文は使用しなくても、副プログラムが3つのうちどれなのかを自動的に判断してくれますので、今までの仮引数の宣言の仕方は間違ってはいません。しかし、コンピュータといえども、先ほどのEXTERNALでの関数の間違いと同じように、仮引数の属性を間違ってしまうことがあります。自分では1番目の属性としてプログラムを組んでいるのに、コンピュータが3番目だと判断してしまい、おかしな実行結果になることがあることは考えられます。ですから、そうしたエラーを出さないようにするためには、INTENT文を使用してその属性をはっきりさせることが大事だということです。また属性を宣言することにより、プログラマ自身にとっても、その変数の役割をしっかりと認識することができます。 2つ目のOPTIONAL文は、対象の引数に省略可能を認める機能を持つ文です。副プログラムは実引数と仮引数の個数が一致するように書きますが、場合によっては省略できたほうが便利になることがあります。3つの引数を入力用として受け取る副プログラムがあるとしましょう。その副プログラムはこの3つを使って計算処理をするわけですが、2つに引数が減ったとしても、ほとんどの部分が3つの場合と同じ処理で可能だと分かりました。どうせほぼ同じ処理しかしないのであれば、わざわざ引数が2つ用の副プログラムをもう一個余分に作るよりも、3つ目の引数を省略可能な引数にして、引数が2つでも3つでも対応可能な副プログラムを作ったほうが簡単です。それを実現するのが、OPTIONAL文です。 引数を省略可能にするには、型宣言文にOPTIONAL文を追加します。例えば、「real,optional r」です。ただ、これだけでは不完全で、主プログラムにおいて、「INTERFACE」宣言をする必要があります。これは、INTERFACE文を使用して、「この副プログラムでは、この仮引数が使われていて、かつこの引数は省略可能なものとする」ということを宣言するのです。下の例をご覧ください。INTENTも一緒に使用しています。 program main implicit none interface real function f(x,y,z) real,intent(in),optional z real,intent(in) x,y end function f end interface integer n real x,y,z,kyori,f print *, 原点からある点までの距離を求める。ある点の次元数(2か3)を入力 read *,n if(n==2)then print *, 2次元で、ある点の座標を入力 read *,x,y kyori=f(x,y) print *,kyori else print *, 3次元で、ある点の座標を入力 read *,x,y,z kyori=f(x,y,z) print *,kyori endif end program real function f(x,y,z) real,optional z real x,y f=x**2+y**2 if(present(z))f=f+z**2 f=sqrt(f) end function f INTERFACE宣言は、PROGRAM文やFUNCTION文のように、END分が付いて、ここで宣言を閉じます。INTERFACE宣言の中には、副プログラムの先頭と、変数の宣言文をそっくりそのまま書きます。書いたらEND文で副プログラムを閉じるのを忘れないようにしてください。これにより、「z」は省略可能な引数になります。ですから、副プログラムを呼ぶときに、実引数が「x」と「y」だけでも、また「z」を含めても、同じ副プログラムで対応することができます。 副プログラム中にある「PRESENT」文は、省略可能な引数が今現在副プログラム中に存在しているかどうかを問い合わせる組み込み関数です。存在していれば真を返します。このプログラムの場合、「z」を引数として渡していれば、「f=f+z**2」、つまり「f=x**2+y**2+z**2」が行なわれることになります。 h153 ~/programs/CV2_2DCIP/fortran saitoudaisuke$ make make Circular main.f - main.f dependency dropped. make Circular input.f - input.f dependency dropped. make Circular output.f - output.f dependency dropped. make Circular acip2d.f - acip2d.f dependency dropped. make Circular poisson.f - poisson.f dependency dropped. g77 main.f input.f output.f acip2d.f poisson.f -o cv2 /usr/bin/ld Undefined symbols _MAIN__ collect2 ld returned 1 exit status make *** [cv2] Error 1 h153 ~/programs/CV2_2DCIP/fortran saitoudaisuke$ 判らんエラーだ???2010-02-03
https://w.atwiki.jp/k_rororo/pages/16.html
Emacs起動時のメッセージを消す エラーメッセージ「CRITICAL ** murrine_style_draw_box assertion `height = -1' failed」を消す デフォルトのインデント幅とタブを使わずスペースを使う キーバインドを変更する バックアップファイルを作らない メニューバー非表示化 自動で色を付ける設定 Ruby でマジックコメントを無効化 行末の空白行を表示 C-x p で前のウィンドウへ(other-window を逆向きに移動) 対応する括弧をハイライト スクロールバーを右に Emacs 起動時のメッセージを消す Emacsの設定ファイル($HOME/.emacs)に以下の設定を追加 (setq inhibit-startup-message t) エラーメッセージ「CRITICAL ** murrine_style_draw_box assertion `height = -1 failed」を消す Emacs 23のバグらしい? 「/usr/share/themes/Ambiance/gtk-2.0/gtkrc」の41行目 GtkRange trough-under-steppers = 0 を GtkRange trough-under-steppers = 1 にする デフォルトのインデント幅とタブを使わずスペースを使う (setq-default tab-width 2 indent-tabs-mode nil) キーバインドを変更する C-h を Backspace に (global-set-key "\C-h" delete-backward-char) C-c g を goto-line に (global-set-key "\C-cg" goto-line) バックアップファイルを作らない ;;; *.~ とかのバックアップファイルを作らない (setq make-backup-files nil) ;;; .#* とかのバックアップファイルを作らない (setq auto-save-default nil) メニューバー非表示化 (if window-system (menu-bar-mode 1) (menu-bar-mode -1)) 自動で色を付ける設定 (global-font-lock-mode t) Ruby でマジックコメントを無効化 (custom-set-variables (ruby-insert-encoding-magic-comment nil)) 行末の空白行を表示 (setq-default show-trailing-whitespace t) C-x p で前のウィンドウへ(other-window を逆向きに移動) (global-set-key "\C-xp" (lambda()(interactive)(other-window -1))) 対応する括弧をハイライト (show-paren-mode t) スクロールバーを右に (set-scroll-bar-mode right)
https://w.atwiki.jp/ntemacs/pages/47.html
■ Windows版 Emacs 共通の設定 【お知らせ】 2018/07/17 追記 Vagrant を WSL から利用する場合は次のページを参考としてください。本ページの内容は Cygwin を利用する場合の説明となっています。 https //www.vagrantup.com/docs/other/wsl.html 2014/11/18 追記 Windows で Google日本語入力 と連携可能な mozc_emacs_helper.exe を作成することに成功しました。mozc_emacs_helper.exe を使えばここのページの設定は不要となります。mozc_emacs_helper.exe を利用する場合は、次のページを参照ください。 「emacs-mozc を動かすための設定(mozc_emacs_helper コンパイル編)」 2014/11/10 追記 次のリポジトリで、W32-IME対応の emacs-24.4-IME-patched-generic-cpu.zip が公開されています。x64 OS を利用の場合はこちらの利用も検討ください。 https //github.com/chuntaro/NTEmacs64 x86 OS 利用の場合は、x86版の Emacs-24.4 を次のページからダウンロードできます。こちらは W32-IME対応版 ではありませんので、emacs-mozc の利用をお勧めします。 http //ftp.gnu.org/gnu/emacs/windows/ http //sourceforge.net/projects/emacs-bin/files/releases/ 【本題】 関連して、「emacs-mozc を動かすための設定(Emacs 設定編)」も参照ください。 NTEmacs で emacs-mozc を動かすためのサーバ準備編です。 Emacs で emacs-mozc を動かすためには、mozc-server や mozc-emacs-helper が必要です。これを Linux の環境上に構築します。 既にネットワーク上や仮想マシン上に linux 環境を持っている方は、その環境に次のパッケージをインストールしてください。 emacs-mozc-bin mozc-utils-gui また、「ssh-agent や ssh-pageant を使って、ssh のパスフレーズの入力を省略するための設定(方法3)」等を参考として、NTEEmacs の shell等 からサーバにパスワード、パスフレーズを入力することなく sshログイン できるようにしてください。 linux の環境を持っていない場合は、次のサイトを参考として、Vagrant(+VrtualBox)で linux server を立ち上げてください。 https //github.com/igjit/vagrant-emacs-mozc(igjit様、利用させていただきます。) 環境構築の大まかな流れは以下のとおりとなります。 1) Vagrang と VrtualBox をインストールする。 2) インストールした Vagrant が Cygwin から実行できるように、Vagrant のインストールディレクトリの binディレクトリ に PATH を通す。 3) Windows と Cygwinホームディレクトリ が異なる場合は、管理者権限でコマンドプロンプトを起動し、次のコマンドを実行する。 (パスは適宜変更してください。また、Unix とは引数の順が逆ですので注意してください。) cd C \Windows\system32 mklink C \gnupack\home\.vagrant.d C \Users\ user \.vagrant.d mklink C \gnupack\home\.VirtualBox C \Users\ user \.VirtualBox mklink "C \gnupack\home\VirtualBox VMs" "C \Users\ user \VirtualBox VMs" 4) Proxyサーバ を介してインターネットに接続している場合は、Cygwin に次の設定を行う。(ホストOS側のための設定) (gnupack の shell から Cygwin 環境を使う場合は、config.ini で設定するのが良いと思います。) ( IP address と port の部分は、適宜変更してください。) export http_proxy="http // IP address port /" export https_proxy="http // IP address port /" export no_proxy="localhost,127.0.0.1" 5) Cygwin で次のコマンドを実行する。 (Cygwin に git がインストールされていなければ、setup-x86.exe 等を使ってインストールしてください。) $ git clone https //github.com/igjit/vagrant-emacs-mozc.git $ cd vagrant-emacs-mozc/ 6) Vagrantfile を開き、次の2つの変数を変更して i386版OS を使うようにする。 (設定を変更せずに amd64版OS を使う場合は、BIOS設定 で VT-x/AMD-V が有効となっていることを確認してください。) config.vm.box = "trusty-server-cloudimg-i386" config.vm.box_url = "https //cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-i386-vagrant-disk1.box" 7) Proxyサーバ を介してインターネットに接続している場合は、Cygwin で次のコマンドを実行する。(ゲストOS側のための設定) $ vagrant plugin install vagrant-proxyconf また、Vagrantfile の最終行の end の前に次の行を追加する。( IP address と port の部分は、適宜変更してください。) if Vagrant.has_plugin?("vagrant-proxyconf") config.proxy.http = "http // IP address port /" config.proxy.https = "http // IP address port /" config.proxy.no_proxy = "localhost,127.0.0.1" end 8) Cygwin で次のコマンドを実行する。 $ vagrant up 9) 次のコマンドを実行し、サーバにログインできることを確認する。 $ ssh -p 2422 -i ~/.vagrant.d/insecure_private_key vagrant@127.0.0.1 このページの設定を何度か繰り返した場合などに、次のエラーが出る場合があります。 その場合は、~/.ssh/known_hosts を削除してみてください。 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 10) 次のコマンドを実行し、リモートの mozc_emacs_helper が動作することを確認する。 $ echo -e (0 CreateSession)\n(1 SendKey 1 97) | ./mozc_emacs_helper.sh ((mozc-emacs-helper . t)(version . "1.13.1651.102")(config . ((preedit-method . roman)))) ((emacs-event-id . 0)(emacs-session-id . 1)(output . ())) ((emacs-event-id . 1)(emacs-session-id . 1)(output . ((id . "2112461956057362500")(mode . hiragana)(consumed . t)(preedit . ((cursor . 1)(segment ((annotation . underline)(value . "あ")(value-length . 1)(key . "あ")))))(candidates . ((size . 1)(candidate ((index . 0)(value . "あ")(annotation . ((description . "ひらがな")))(id . 0)))(position . 0)(category . suggestion)(display-type . main)(footer . ((label . "Tabキーで選択")))))(status . ((activated . t)(mode . hiragana)(comeback-mode . hiragana)))(all-candidate-words . ((candidates ((id . 0)(index . 0)(value . "あ")(annotation . ((description . "ひらがな")))))(category . suggestion)))))) 以上でうまく行かない場合は、次のページも参照して問題を解決してください。 Vagrant で立ち上げたサーバに接続できないときは.. http //sakashushu.blog.so-net.ne.jp/2014-06-16 Cygwin から Vagrant を使うには.. http //futurismo.biz/archives/1651 Proxy 経由でインターネットに接続している場合は.. http //weblabo.oscasierra.net/vagrant-proxyconf/ また、PC をシャットダウンする際は、事前に vagrant-emacs-mozc ディレクトリ配下で次のコマンドを入力し、サーバを停止してください。 vagrant halt 11) つづいて、「emacs-mozc を動かすための設定(Emacs 設定編)」の設定を行う。 変更履歴 2014/10/30 このページを作成した。
https://w.atwiki.jp/oxon/pages/66.html
Emacs Unixで長い歴史を持つ定番のエディタである。OS Xにも/usr/binに標準でインストールされている。 キーバインディング Cocoa?で記述されたアプリケーションのキーバインディングは、bashやEmacsの主要なキーバインディングと一致する。そのため、Cocoaのキーバインディングに慣れたユーザにとっては、Emacsは馴染みやすいエディタであろう。 X Window System対応 /usr/bin/emacsはコンパイル時のフラグのせいで、X Window Systemでの使用ができない。そのため、-nwオプションをつけたのと同じ動作しかしてくれない。X Window System上でEmacsを使用したいユーザは、Finkから導入するのが簡単である。 日本語入力 Carbon Emacsをインストールすることで、ことえり?やATOK?での日本語入力に対応する。またFinkなどからCannaなどを導入することもできる。 Leopardからは、Terminal.appで起動したEmacsが日本語入力を受け付けるようになった。そのため、LeopardでEmacsを使う分には、普段使用していることえり?がそのまま使えるので、Carbon Emacsなどを導入しなくともよい。 Last Updated 2008-04-11
https://w.atwiki.jp/ntemacs/pages/50.html
■ Windows版 Emacs 共通の設定 ■ Windows Subsystem for Linux の Emacs で利用できる設定 【お知らせ】 2022/06/14 追記 最近ビルドした方はさらに苦労されているようです。お疲れ様です。 https //zenn.dev/ignorant/scraps/6132afb5915f34 2018/08/12 追記 最近、mozc_emacs_helper.exe をビルドされた方の情報が次のページにあります。 https //qiita.com/ignorant/items/1c4f729f9147fb878f10 最新の mozc には src/data_manager/packed/packed_data_manager.gyp が無くなったようで、そのパッチが削除されています。また、ひとつ下のコメントで紹介している rzl24ozi さんのパッチを利用しているので、セッション接続直後 direct モードになる問題が対策された実行モジュールがビルドされるようになっています。独自ビルドされる方は参考とされてください。 2017/06/08 追記 rzl24ozi さんの次のページを見つけました。私はまだ試せていませんが、本ページの代わりのものとして利用できそうです。ただし、WSL版 Emacs で Windows の Google日本語入力を利用したい場合には、次のページの方法は利用できません。 https //github.com/rzl24ozi/mozc-emacs-helper-module 2017/06/08 追記 本ページの記載内容は古くなってきています。本ページを作成するために参考とした情報の最新のものが次のページにありますので、こちらのページも併せて確認してください。 https //github.com/google/mozc/blob/master/docs/build_mozc_in_windows.md なお、公開しているバイナリ(mozc_emacs_helper.exe)もかなり前にコンパイルしたものですが、こちらは現在でも問題なく動いています。 2016/09/13 追記 mozc_emacs_helper.exe のテストの際に IME を ON にするために入力しているキーを「Hiragana」から「Hankaku/Zenkaku」に変更しました。この対応で、Google日本語入力のキー設定が「MS-IME」以外の「ことえり」などでもテストが通るようになりました。(ただし、「Hankaku/Zenkaku」キーは「Hiragana」キーと異なり、IME の ON/OFF をトグルするキーとなります。必要な場合に一度のみ発行するように注意して利用する必要があります。) 2015/10/01 追記 OSS mozc の Wish List が書かれた blog がありました。 http //nyaruru.hatenablog.com/ 【本題】 関連して「emacs-mozc を動かすための設定(Emacs 設定編)」、「emacs-mozc を動かすための設定(WSL 設定編)」も参照ください。 Windows版 Emacs や WSL の Emacs で 「Google日本語入力」と連携可能な emacs-mozc を動かすための mozc_emacs_helper コンパイル編 です。 mozc_emacs_helper.exe の取得のみが目的であれば、次のページからバイナリをダウンロード可能です。かなり前にビルドしたものですが、現在でも問題なく動作しています。 https //github.com/smzht/mozc_emacs_helper 0) 事前に「Google日本語入力」のインストールを行う。 http //www.google.co.jp/ime/ 1) 次のページから Visual Studio Community 2013 をインストールする。 https //www.visualstudio.com/ja/vs/older-downloads/ (参考)http //www.softantenna.com/wp/windows/visual-studio-community-2014/ ※ Visual Studio Community 2013 のインストールでは、最低「Microsoft Foundation Classes for C++」のインストールを行ってください。Language Pack は無くても構いません。 ※ (2017/11/27 追記)上記【お知らせ】にも記載していますが、本ページの記載内容は古くなってきています。現在は、Visual Studio Community 2015 の利用が推奨されています。次のページも併せて参照してください。 https //github.com/google/mozc/blob/master/docs/build_mozc_in_windows.md https //qiita.com/ignorant/items/1c4f729f9147fb878f10 2) Cygwin 上で depot_tools.zip をダウンロードし、解凍する。 $ mkdir c /work $ cd c /work $ wget https //src.chromium.org/svn/trunk/tools/depot_tools.zip $ unzip depot_tools.zip 3) 作成された depot_toolsディレクトリ を PATH に追加し、gclient を二回実行する。 $ export PATH=`pwd`/depot_tools $PATH $ gclient $ gclient 4) mozc のソースをダウンロードする。 $ git.bat clone https //github.com/google/mozc.git --recursive 5) 作成された mozcディレクトリ に移動し、以下のパッチを適用する。 $ cd mozc $ patch -b -p0 src.patch src.patch は以下のとおりです。 packed_data_manager.gyp のパッチはコンパイルエラーを回避するためのもので、内容は適当です。(というか、どうすれば良いか分からない。) diff -urN src.orig/data_manager/packed/packed_data_manager.gyp src/data_manager/packed/packed_data_manager.gyp --- src.orig/data_manager/packed/packed_data_manager.gyp2014-11-17 19 23 22.000000000 +0900 +++ src/data_manager/packed/packed_data_manager.gyp2014-11-17 20 02 09.379555300 +0900 @@ -47,5 +47,12 @@ }, includes [ packed_data_manager.gypi ], }], + [ branding=="GoogleJapaneseInput" , { + variables { + dataset_dir oss , + dataset_tag oss , + }, + includes [ packed_data_manager.gypi ], + }], ], } diff -urN src.orig/win32/build32/build32.gyp src/win32/build32/build32.gyp --- src.orig/win32/build32/build32.gyp2014-11-17 19 25 33.000000000 +0900 +++ src/win32/build32/build32.gyp2014-11-17 20 02 52.369617200 +0900 @@ -49,6 +49,7 @@ ../broker/broker.gyp mozc_broker32 , ../ime/ime.gyp mozc_ime , ../tip/tip.gyp mozc_tip32 , + ../../unix/emacs/emacs.gyp mozc_emacs_helper , ], conditions [ [ use_dynamically_linked_qt!=1 , { 6) srcディレクトリ に移動し、次のコマンドを実行する。 $ cd src $ python.bat build_mozc.py gyp --msvs_version=2013 --noqt --branding=GoogleJapaneseInput $ python.bat build_mozc.py build -c Release package 7) out_win/Release に移動し、 mozc_emacs_helper.exe が作成されていることを確認する。 8) Cygwin や WSL の環境で次のコマンドを実行し、mozc_emacs_helper.exe が動作することを確認する。 $ echo -e (0 CreateSession)\n(1 SendKey 1 Hankaku/Zenkaku)\n(2 SendKey 1 97) | ./mozc_emacs_helper.exe ((mozc-emacs-helper . t)(version . "1.13.1641.0")(config . ((preedit-method . roman)))) ((emacs-event-id . 0)(emacs-session-id . 1)(output . ())) ((emacs-event-id . 1)(emacs-session-id . 1)(output . ((id . "14187429124963392915")(mode . hiragana)(consumed . t)(status . ((activated . t)(mode . hiragana)(comeback-mode . hiragana)))))) ((emacs-event-id . 2)(emacs-session-id . 1)(output . ((id . "14187429124963392915")(mode . hiragana)(consumed . t)(preedit . ((cursor . 1)(segment ((annotation . underline)(value . "あ")(value-length . 1)(key . "あ")))))(candidates . ((size . 3)(candidate ((index . 0)(value . "あああ")(annotation . ((deletable . t)))(id . 0))((index . 1)(value . "安比")(annotation . ((deletable . t)))(id . 1))((index . 2)(value . "あ")(annotation . ((description . "ひらがな")))(id . 2)))(position . 0)(category . suggestion)(display-type . main)(footer . ((label . "Tabキーで選択")))))(status . ((activated . t)(mode . hiragana)(comeback-mode . hiragana)))(all-candidate-words . ((candidates ((id . 0)(index . 0)(key . "あああ")(value . "あああ")(annotation . ((deletable . t))))((id . 1)(index . 1)(key . "あっぴ")(value . "安比")(annotation . ((deletable . t))))((id . 2)(index . 2)(value . "あ")(annotation . ((description . "ひらがな")))))(category . suggestion)))))) ※ Linux で mozc_emacs_helper を実行した場合は、セッション接続直後に hiraganaモード になるのですが、Windows の環境では directモード になるようです。このため、「(1 SendKey 1 Hankaku/Zenkaku)」を挟んでいます。このための対策を「emacs-mozc を動かすための設定(Emacs 設定編)」の設定で行っています。 ※ Windows 8.1 では、一回の「Hankaku/Zenkaku」キーの発行だけでは hiraganaモード に移行しない場合があるようです。その場合は次のコマンドをお試しください。ただし、この現象による「emacs-mozc を動かすための設定(Emacs 設定編)」の変更は必要ありませんでした。(※ 2016/10/12 追記: 時間的なタイミングの問題の可能性もあるので、「Hankaku/Zenkaku」キーの発行の後に delay(sleep)を入れることでも解決するかもしれません。現在、Windows 8.1 の環境がない(全て、Windows 10 に upgrade してしまった)ため、確認ができておりません。) $ echo -e (0 CreateSession)\n(1 SendKey 1 Hankaku/Zenkaku)\n(2 SendKey 1 Hankaku/Zenkaku)\n(3 SendKey 1 97) | ./mozc_emacs_helper.exe 9) Windows版 Emacs を使っている方は、mozc_emacs_helper.exe をコマンドパスの通ったディレクトリ(~/bin 等)に配置する。WSL の Emacs を使っている方は、次に進む。 10) Windows版 Emacs を使っている方は「emacs-mozc を動かすための設定(Emacs 設定編)」を、WSL の Emacs を使っている方は「emacs-mozc を動かすための設定(WSL 設定編)」の設定を行う。 変更履歴 2014/11/17 このページを作成した。 2014/11/19 mozc_emacs_helper のバイナリを追加した。 2015/07/04 Windows8.1 で検証を行った結果のコメントを追記した。
https://w.atwiki.jp/bonchu/pages/12.html
emacs ショートカット一覧(重要 便利) Ctrl+¥ 日本語に変換 Ctrl+v ページを進める Alt+v ページを戻る Ctrl+スペース コピー (オプション:追加でEsc,wでコピー、Ctrl+xで切り取り) Ctrl+y ペースト Ctrl+k 一行消す Ctrl+w マー消去 Ctrl+x,Ctrl+s セーブ Ctrl+x,Ctrl+w ファイル名変更セーブ Ctrl+x,Ctrl+f ファイルオープン Ctrl+x,Ctrl+b 開いているファイル表示 Ctrl+x,h バッファ全部マージ Ctrl+x,s 複数ファイルを Ctrl+x,Ctrl+c 閉じる Alt+x,Com(-付) コマンド(-付き)を実行 Alt+x,recover file 自動セーブファイルを復元 Ctrl+g Quit Ctrl+x,u or Ctrl+_ Undo Ctrl+f forward 進む Ctrl+b back 戻る Ctrl+p previous 上 Ctrl+n next 下 Ctrl+a 左端 Ctrl+e end右端 Ctrl+i タブ Ctrl+l カーソルの場所を中心に表示してくれる Ctrl+h,c,Com コマンドのヘルプ画面 Ctrl+u,Num, Num回分、コマンドを実行 Alt+ 先頭 Alt+ 最後尾 Ctrl+x,2 double window Ctrl+x,o 別(other)のウィンドウに切り替え Ctrl+x,1 single window Lisp UNIX News!! コンピュータサイエンス専門誌「bit」の電子復刻版,Amazon.co.jpのKindleストアで販売中 - 4Gamer.net 東京工業大学が 楽々WorkflowIIを採用 電子承認・電子決裁システム導入でDXを推進:紀伊民報AGARA - 紀伊民報 「Python 3.10.1」リリース - ThinkIT 「NewSQL」はPostgreSQLやMySQLを代替するのか? Oracle ACEの篠田氏と語るDBの過去、現在、未来 - ITmedia EMUI、HarmonyOSからopenEulerまで、HuaweiがOSを自社開発するワケ(TechTargetジャパン) - Yahoo!ニュース - Yahoo!ニュース 日立、UNIXサーバーEP8000に最上位機種「E1080」、Power10を搭載 | IT Leaders - IT Leaders 「UNIXコマンド」を知り尽くした人なら解ける10問クイズ - ホワイトペーパー [OS] - TechTargetジャパン 世界で最も使われるオープンソースのUNIX系OS「Linux」が生誕30周年 - GIGAZINE これまでどんなOSが開発されてきたのか&どう派生したのかが見てわかる系図が公開 - GIGAZINE クロスプラットフォームを対象にするランサムウェア「Babuk」(概要記事) - ASCII.jp Kindleストアで高額書籍のセール! 関連本が最大50%OFF - 窓の杜 第1回:創生期からひも解くワークステーションの存在理由 - ZDNet Japan 第66回 モジュールによる時間の多様な取り扱い(1):Perl Hackers Hub - Gihyo Jp UNIX開発チームが開発した分散OS「Plan 9 from Bell Labs」の権利がオープンソースコミュニティに移行 - GIGAZINE 決着したと思われていたSCO・Linux論争が再燃 - ZDNet Japan 窓辺の小石(2) WindowsでLinux - マイナビニュース 青森の工場が作る、残反でできたエプロンを販売 - PR TIMES Linuxの基礎用語を完全理解するためにエンジニアが作成した「10のミニプロジェクト」とは? - GIGAZINE 【業界初】SOLOTEX(R)を使った医療用スクラブを11月1日より発売 - PR TIMES UNIX/Linuxの「デーモン」はこうやって作る - GIGAZINE UNIXの貴重なブート画面を記録したムービー「AT&T UNIX PC 7300 boot up」 - GIGAZINE カロリーメイトの特設サイトがプログラマーに刺さりまくり UNIX風コマンドでコンテンツが開く(1/2 ページ) - - ねとらぼ Linuxコマンドの代替コマンド「ncdu」「htop」「tldr」「jq」「fd」とは? - マイナビニュース DEC Alphaサーバで稼働しているTru64 UNIXのDBをモダナイズせよ - ITmedia 新しいシェル「NuShell」、知っていますか? - マイナビニュース 「2038年問題」への対応進むLinux - ZDNet Japan HHKBのControlキーはなぜAの左なんだぜ - ITmedia UNIX TOKYOが手掛けるギフトハンカチ「NEMA」から新デザインが登場です! - PR TIMES 2019年10月16日 “脱帽です”―9億3000万ハッシュ/秒でようやく判明したケン・トンプソンのパスワードは…?:Linux Daily Topics - Gihyo Jp Windows 10で使えるようになった「Bash」 「PowerShell」との違いは? - TechTargetジャパン 5年越しに破られたUnixの父ケン・トンプソン氏のパスワードとは? - GIGAZINE Linuxで設定ファイルをチェックする方法21選 - マイナビニュース HP 9000シリーズでワークステーションのシェアを獲得したHP 業界に多大な影響を与えた現存メーカー (1/4) - ASCII.jp 赤ちゃんの名前を刺繍した、オーガニックコットンの肌着 - PR TIMES UNIX TOKYOが手がけるあのひとへ贈るもらってうれしいギフトハンカチ「NEMA」から新作デザイン発売! - PR TIMES AirDrop/AirPlay用基盤はチャットにも便利!? - 新・OS X ハッキング!(240) - マイナビニュース Linux技術者認定試験「LPIC」とは? 公認テキストから試験問題や学習方法を紹介 - CodeZine(コードジン) 〈uniform UNITED ARROWS LTD.〉から医療用白衣・スクラブを販売開始 - PR TIMES ユナイテッドアローズ×UNIX TOKYOの制服レーベル、医療用白衣とスクラブを発売 - Fashionsnap.com UNIX TOKYO株式会社のプレスリリース|PR TIMES - PR TIMES 「UNIXの歴史は異文化交流の歴史」ブロックチェーンエンジニアよ、人とつながるべし - 仮想通貨 Watch Bash 5.0登場、UNIX時間を保持する変数導入 - マイナビニュース Web OS・オブ・ザ・イヤー2018はUNIX - マイナビニュース 使っているシェルを調べる方法 - マイナビニュース Windowsのパス区切り文字は、なぜ逆スラッシュになったのか? - ASCII.jp Windowsユーザーに贈るLinux超入門(11) WindowsのドライブとLinuxのマウント、何が違う? - マイナビニュース iOSにはUNIXコマンドがたくさん収録されてるってホント? - いまさら聞けないiPhoneのなぜ - マイナビニュース Oracle Solaris 11.4登場、唯一のUNIX V7認定OS - マイナビニュース UNIXライクなコマンドも使えるWindows用SSHサーバー「Bitvise SSH Server」を使ってみた - GIGAZINE マイクロソフト、Windows 10にUNIX系OSと似た擬似コンソール実装 - マイナビニュース 実行してはいけないLinuxコマンド(2) Ubuntu Desktopで『rm -rf /』を実行 - マイナビニュース Windows 10 RS5では「メモ帳」がCR+LF以外の行末記号に対応 - ASCII.jp Windowsのメモ帳がUNIX系OSおよびMac OS Xのファイルに対応 - ThinkIT UNIX/Linuxでよく使われる「Daemon」(デーモン)プロセスの語源とは? - GIGAZINE Google発の新OS「Fuchsia」をMacで試す - 新・OS X ハッキング!(209) - マイナビニュース CData ODBC Drivers のMac 版およびLinux/Unix 版をリリース ~Mac およびLinux 上のアプリケーションから80を超えるクラウドに連携~ - PR TIMES UNIX化進めるWindows 10、コマンド「bsdtar」「curl」導入 - マイナビニュース 業界に痕跡を残して消えたメーカー UNIX市場を拡大しダークサイドに堕ちたSCO (1/3) - ASCII.jp エンカレッジ・テクノロジ、証跡管理ソフト「ESS REC」のUNIX/Linux OS用エージェントの最新版 - EnterpriseZine エンカレッジ・テクノロジ、証跡管理ソフト「ESS REC」のUNIX/Linux向けエージェント新版 - クラウド Watch 快進撃を続ける富士通の最新UNIXサーバ「SPARC M12」--世界各国で採用が進む、その魅力とは - ZDNet Japan Linuxユーザーも「PowerShell」を無視できない理由 - TechTargetジャパン ランサムウェアが次に狙う先は? UNIX系に広がる可能性 - ZDNet Japan Linux vs. UNIX ホットパッチ機能はLinuxがリード - TechTargetジャパン ASCII.jp:Unixドメインソケット (1/2) - ASCII.jp Macはもう不要!? - UNIX使い 狙い撃ちの「Windows Subsystem for Linux」を検証する(前編) (1/2) - ASCII.jp 25年前に生まれて世界を制覇した、Linuxの物語 - WIRED.jp 業界に痕跡を残して消えたメーカー UNIXの覇者Sun Microsystems (1/3) - ASCII.jp コンパクトに直感的に、UNIX系テキストエディター「nano」が2.6.2 - マイナビニュース ネット難読:Linuxの読み方は、リナックス? ライナックス? - - ITmedia 【一覧表付き】初めてLinux(UNIX)を使うエンジニアが覚えるべき9つのコマンド - Tech Note(テックノート) WindowsとUNIXが再び融合する日 - 阿久津良和のWindows Weekly Report - マイナビニュース 次期Windows 10でUNIXコマンドをネイティブサポート - マイナビニュース 2016年3月2日 安心してください,やっと死にました SCOがIBMと最終合意へ:Linux Daily Topics - Gihyo Jp 【やじうまWatch】「UNIX MAGAZINE」バックナンバー全号など90~00年代のPC誌約500冊がヤフオクに出品中 - INTERNET Watch UNIXとは? - ZDNet Japan UNIXサーバ「EP8000」に新ミッドレンジモデル--全モデルで拡張性強化 - ZDNet Japan Windows上で動作するUnix互換環境「Cygwin」がメジャーバージョンアップ - 窓の杜 [みんなのケータイ]「Android Terminal Emulator」を使ってLinux勢のガチさに感銘 - AV Watch これは強力! AWKとパイプの新しい関係 ~ 時刻を取得する関数、Socket通信、双方向パイプ - CodeZine UNIXとLinuxの「Bash」シェルに重大なセキュリティホール - ZDNet Japan AWKプログラミングの真髄の1つ フィールド(列)を操る基礎テクニック - CodeZine ゼロからはじめる「Cygwin」 - コマンドプロンプトでUNIXコマンドを使う編 (1) - マイナビニュース 富士通はSPARC/UNIXサーバーをどう作ってきたか (1/2) - ASCII.jp UNIXやWindowsからLinuxにシフトする Red Hatが描く成長戦略 - ITmedia UNIXサーバ15台をブレードサーバに移行--メインフレームで一元管理 - builder SPARC64 X搭載の新UNIXサーバ「SPARC M10」がついに姿を見せる - builder 富士通、UNIXサーバの「SPARC M10」シリーズを発表 - ITmedia Cygwinより手軽にUNIX風環境が手に入る「Gow」 (1) - マイナビニュース UnixのコマンドをWindowsのコマンドプロンプトで利用可能にする「Gow」NOT SUPPORTED - 窓の杜 (UNIX, C言語の始祖)Dennis Ritchieから学ぶべきこと - TechCrunch C言語およびUNIXの父、デニス・リッチー死去 ― 享年70歳 - TechCrunch Qtで加速する「脱X11」なUNIX汎用ソフト (1/2) - ASCII.jp UNIX vs Microsoft Windows:そのシステム設計におけるセキュリティ理念の相違 - ZDNet Japan 日本のC言語とUNIXの父、そしてインターネットの父祖 石田晴久氏が死去、72歳 - CodeZine AIXを管理する上でのポイント - ITmedia ログファイルのローテーション:UNIX処方箋 - ITmedia bashが起動時に実行するファイル:UNIX処方箋 - ITmedia sotrussやapptraceによる実行コマンドのトレース - ITmedia UNIXに勝ったWindowsがLinuxには勝てない理由 - ITmedia
https://w.atwiki.jp/yuichi0619/pages/13.html
使用しているテキストエディタemacsについて mew(2008/6/9) sshでメールが見れるようにしたい。 なんで、emacsでメールを読めるようにする。 opensuseにはパッケージがないんで自分でビルド。mew-6.1を落としてくる。 まずは、 $ ./configure 次にmakeする前にopensuseはsite-lispが/usr/local/share/emacs/ではなく、/usr/share/emacs/にあるので、 prefix=/usr/local ↓ prefix=/usr とMakefileを書き換える。 その後、 $ make info $ make jinfo $ make install $ make install-jinfo とし、インストールを完了した。そして、.emacsに以下を追加した。 (autoload mew "mew" nil t) (autoload mew-send "mew" nil t) ;;; Makefile の etcdir で指定したディレクトリ (setq mew-icon-directory "/usr/local/lib/emacs/etc/Mew") (if (boundp read-mail-command) (setq read-mail-command mew)) (autoload mew-user-agent-compose "mew" nil t) (if (boundp mail-user-agent) (setq mail-user-agent mew-user-agent)) (if (fboundp define-mail-user-agent) (define-mail-user-agent mew-user-agent mew-user-agent-compose mew-draft-send-message mew-draft-kill mew-send-hook)) そして、.mew.elファイルを作った。内容は参考サイト参照。 参考サイト Mewのオフィシャルページ ttp //www.mew.org/index.html.ja scheme(2008/2/1) schemeを勉強するかもしれない。とりあえずemacsに環境を整えておこう。 以下を.emacsに追加。 ; scheme (setq scheme-program-name "/opt/local/bin/gosh") C-x C-eでgoshを起動。 コメントアウト(2008/1/28) comment-regionが便利な事に気がついた。 だからキーに割り当てた。 以下を.emacsに追加。 ;Ctrl c r を comment-regionのショートカットに ;Ctrl c u を uncomment-regionのショートカットに (global-set-key "\C-cr" comment-region) (global-set-key "\C-cu" uncomment-region) CarbonEmacsのメニューバーの消去(2008/1/28) carbonEmacsが起動する度メニューバーが出てくるのがうざい。 ぶっちゃけいらない。だから起動時に隠すようにした。 以下を.emacsに追加。 ;; メニューバーの消去 (tool-bar-mode -1) フレームの半透明化(2008/1/28) 何となくフレームを透けさせる。 だってかっこ良くない? 以下を.emacsに追加。 ;Emacsのフレームを透明に (modify-all-frames-parameters (list (cons alpha (80 40 50 30)))) 括弧の対応の色付(2007/7/23) 括弧の対応を色付け。 対応がわからんくてイライラするから色を付ける。 以下を.emacsに追加。 ;括弧の対応を色付 (show-paren-mode t) 全角スペースへの色付(2007/7/17) 全角スペースのせいでコンパイラが通らないことはよくあるが、 非常に見付けににくい。なんで全角スペースに色を付ける。 以下を.emacsに追加。 ;全角スペースに緑の色づけ。全角スペースは罠だよ =( (defface my-face-b-1 ((t ( background "green"))) nil) (defvar my-face-b-1 my-face-b-1) (defadvice font-lock-mode (before my-font-lock-mode ()) (font-lock-add-keywords major-mode ((" " 0 my-face-b-1 append) ))) (ad-enable-advice font-lock-mode before my-font-lock-mode) (ad-activate font-lock-mode) shortcut(2007/6/1) goto-lineを打ち込むのが面倒。 ショートカット化する。 以下を.emacsに追加。 ;Ctrl L を goto-lineのショートカットに (global-set-key "\C-l" goto-line) haskell-mode(2007/6/1) haskellの勉強をするために、haskell-modeの設定をする。 調べてみたが設定がわからなかったので、最新verでは無く、ver2.1を落とし、haskell-ghci.elを以下のように修正。 (if haskell-ghci-mode-map nil (setq haskell-ghci-mode-map (copy-keymap comint-mode-map))) ↓ (if nil ;haskell-ghci-mode-map nil (setq haskell-ghci-mode-map (copy-keymap comint-mode-map))) 更に以下の文を.emacsを追加。 意味はわかっていない。 ;haskell-modeのパスを定義 (setq load-path (cons "~/haskell/haskell-mode" load-path)) (setq auto-mode-alist (append auto-mode-alist (("\\.[hg]s$" . haskell-mode) ("\\.hi$" . haskell-mode) ("\\.l[hg]s$" . literate-haskell-mode)))) (autoload haskell-mode "haskell-mode" "Major mode for editing Haskell scripts." t) (autoload literate-haskell-mode "haskell-mode" "Major mode for editing literate Haskell scripts." t) (add-hook haskell-mode-hook turn-on-haskell-decl-scan) (add-hook haskell-mode-hook turn-on-haskell-doc-mode) (add-hook haskell-mode-hook turn-on-haskell-indent) (add-hook haskell-mode-hook turn-on-haskell-ghci) (setq haskell-literate-default latex) (setq haskell-doc-idle-delay 0) 追記(2007/8/5) haskell-mode ver2.3を導入。英語のれあdめを読んで導入する。 windowsでは以下の文を.emacsに追加した。前回入力したのはコメントアウト。 (load "~/haskell/haskell-mode/haskell-site-file") (add-hook haskell-mode-hook turn-on-haskell-doc-mode) (add-hook haskell-mode-hook turn-on-haskell-indent) (add-hook haskell-mode-hook font-lock-mode) (add-hook haskell-mode-hook turn-on-haskell-ghci) Debianではrootで、 $ apt-get install haskell-mode のみで、インストール完了。 .emacsには以下の文だけ追加。 (add-hook haskell-mode-hook turn-on-haskell-ghci) 追記(2008/1/9) macでは、carbonemacsには標準でhaskell-modeが入っているので、 .emacsに以下を追加。 (add-hook haskell-mode-hook turn-on-haskell-hugs) (add-hook haskell-mode-hook turn-on-haskell-doc-mode) (add-hook haskell-mode-hook turn-on-haskell-indent) 日本語化(2007/6/1) cannaは使いにくかったのでanthy化。 以下を.emacsに追加する。 意味はわかっていない。 ; 日本語をデフォルトにする。 (set-language-environment "Japanese") ; anthy.el をロードできるようにする (必要に応じて)。 (push "/usr/local/share/emacs/site-lisp/anthy/" load-path) ; anthy.el をロードする。 (load-library "anthy") ; japanese-anthy をデフォルトの input-method にする。 (setq default-input-method "japanese-anthy") 色付け(2007/6/1) Cやjavaのソースに色を付けるために、以下を.emacsに追加。 ;色を付ける (global-font-lock-mode t)
https://w.atwiki.jp/kobapan/pages/91.html
emacs/text-modeではタブをスペースに変換しない emacs/備忘録 emacs/emacs-evernote-modeのインストール emacs/mmm-modeのインストール emacs/install-elispのインストール emacs/auto-complete-modeのインストール emacs/折り返し表示 emacs/root用の.emacsファイル emacs/mewがCreating an SSL TLS connection...で固まる emacs/recentf-ext.el+anything.el emacs/対話的に確認しながら正規表現を構成して置換するvisual-regexp emacs/起動時に前回開いていたすべてのファイルを開き直す emacs/キーバインドの設定の仕方 emacs/cua-modeで矩形選択 emacs/texiファイルからinfoファイルを作成して使う emacs/eshell emacs/編集作業のキーバンド emacs/文字上書きOverwriteモード emacs/ctags
https://w.atwiki.jp/ntemacs/pages/61.html
■ Windows Subsystem for Linux の Emacs で利用できる設定 【お知らせ】 2022/11/28 追記 次の問題が報告されていますので、WSL は Microsoft Store版のものを利用することをお勧めします。 https //github.com/smzht/mozc_emacs_helper/issues/1 2021/02/05 追記 本ページの内容は WSL2 でも動作します。DrvFs や VolFs の記載がある場合には、Windows 側のファイルシステム、WSL2 側のファイルシステムと読み替えてください。 2020/09/02 追記 WSL2 では、UNC パスをマウントしているマウントポイント配下がカレントディレクトリの状態で Windows の exe コマンドを実行するとエラー終了するようです。4) の設定にこの対策を行いました。 2019/07/26 追記 Windows 10 1903 にバージョンアップしたところ、次の問題が発生しています。 DrvFs のフォルダに WSL から利用する exe コマンドを格納し、そのフォルダのシンボリックリンクを WSl の PATH に登録している場合、PATH を検索した exe コマンドの実行ができない。 似たような問題として次の issue が登録されています。 https //github.com/microsoft/WSL/issues/3999 新しいビルドでは直っているようですが、Windows 10 1903 を利用している場合は、DrvFs のフォルダへの実際のパス(シンボリックリンクではないパス)を PATH に登録するようにしてください。この件を 4) のコメントとして追記しました。 2019/06/24 追記 Windows 10 1809 以降の Windows で発生する Emacs の shell-mode 等で exe コマンドが実行できない問題が本設定にも影響することがあるようなので、その対策を 4) に実施しました。 【本題】 Windows Subsystem for Linux 上で動かす Emacs の emacs-mozc から、Windows にインストールしている Google日本語入力を利用するための設定です。 1) 次の設定を参考とし、Windows Subsystem for Linux で Emacs を動かす環境を整備する。 WSL で Emacs を使うための設定 ※ 上記では Emacs を X Window で利用する方法(推奨)を紹介しています。Emacs をコンソールで利用する場合は X Window に関連する部分を除いて設定してください。 ※ Emacs をコンソールで利用する場合は、次のページから Migu 1M のフォントをインストールして「プロパティ」で設定すると多少見やすくなります。 http //mix-mplus-ipa.osdn.jp/migu/ 2) 次のサイトから「Google日本語入力」をインストールする。 http //www.google.co.jp/ime/ 3) DrvFs ファイルシステム上にフォルダを作成し、そのフォルダのパスを PATH に登録する。そして、そのフォルダに「emacs-mozc を動かすための設定(mozc_emacs_helper コンパイル編)」で準備した mozc_emacs_helper.exe を格納する。 ※ すでにコンパイルされたコマンドは、次のリポジトリからダウンロードできます。 https //github.com/smzht/mozc_emacs_helper ※ Windows 10 1903 を利用している場合、PATH に登録するパスは DrvFs のフォルダへの実際のパス(シンボリックリンクではないパス)としてください。シンボリックリンクのパスを PATH に登録すると、exe コマンドが実行できなくなります。 4) mozc_emacs_helper.sh を次の内容で作成し、上記で作成したフォルダに格納する。 #!/bin/sh cd mozc_emacs_helper.exe "$@" 2 /dev/null ※ このスクリプトは、VolFs 上にある PATH がとおったフォルダ(~/bin 等)に置いても構いません。 ※ Windows 10 1809 以降の Windows では、Emacs の shell-mode 等で exe コマンドが実行できない問題が発生しています。Emacs から直接起動される際には発生しない問題ですが、shell-mode で動作確認する場合には次のようにパイプで cat を通すことで実行が可能となります。 $ mozc_emacs_helper.sh | cat ※ WSL2 では、UNC パスをマウントしているマウントポイント配下がカレントディレクトリの状態で Windows の exe コマンドを実行するとエラー終了するようです。このため、cd でホームディレクトリに移動してから、mozc_emacs_helper.exe を実行しています。 5) 次を参考として emacs-mozc の環境を設定する。((共通)および(「mozc_emacs_helper コンパイル編」利用の場合)の箇所の設定を行ってください。) emacs-mozc を動かすための設定(Emacs 設定編) ※ Emacs をコンソールで利用する場合は、mozc-candidate-style を 'echo-area に設定する方法もあります。 (setq mozc-candidate-style 'echo-area) 6) 次の設定を行い、mozc_emacs_helper.sh の利用を有効にする。 (setq mozc-helper-program-name "mozc_emacs_helper.sh") 7) Emacs で C-o を入力することにより、mozc-emacs-helper が起動し、「Google日本語入力」を間接的に使って漢字が入力できることを確認する。 変更履歴 2016/09/13 このページを作成した。 2017/04/11 Windows 10 1703 がリリースされ、WSL から Windows の EXE を実行できる機能が追加されたので、一部説明の見直しを行った。 2017/11/06 mozc_emacs_helper.exe の配置場所の説明を見直した。 2019/06/24 Windows 10 1809 以降の Windows で発生する Emacs の shell-mode 等で exe コマンドが実行できない問題が、本設定にも影響することがあるようなので、その対策を実施した。 (function(i,s,o,g,r,a,m){i[ GoogleAnalyticsObject ]=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document, script , //www.google-analytics.com/analytics.js , ga ); ga( create , UA-40267130-1 , atwiki.jp ); ga( send , pageview );
https://w.atwiki.jp/musukure/pages/21.html
~/.bashrc export EDITOR=emacs .emacsの設定(meadow, emacs共通部分) リージョンをハイライト (transient-mark-mode t) 対応する括弧をハイライト (show-paren-mode t) サブバージョンを使う (require psvn) ビープ音を消す (setq visible-bell nil) cモード (add-hook c-mode-common-hook (lambda() (c-set-style "linux"))) タグ (setq tags-table-list ("..." "..." "...")) タグのうちかた(Meadowの場合、c /Meadow/bin/以下にあるetags.exeを使ってタグをうつ) $etags `find SRC -name "*.cpp"` -o HOGE/TAGS $etags -a `find INC -name "*.h"` -o HOGE/TAGS ヘッダファイルでもc++モード起動 (setq auto-mode-alist (append (("\\.h$" . c++mode)) auto-mode-alist)) バックアップファイルを作らない (setq backup-inhibited t) スタートアップを表示しない (setq inhibit-startup-message t) 行数表示 (line-number-mode t) C# (add-hook csharp-mode-hook (lambda () (setq c-basic-offset 4 tab-width 4 indent-tabs-mode nil))) (autoload csharp-mode "csharp-mode" "C# editing mode." t) (nconc auto-mode-alist (("\\.cs$" . csharp-mode))) meadow(Windows) emacs(Linux)